#pragma once

#include<fcntl.h>
#include<iostream>
#include<unistd.h>
#include<sys/epoll.h>

//工具集的实现
void SetNonBlock(int fd)
{
    //获取文件描述符的标志位
    int f1 = fcntl(fd , F_GETFL);
    //判断f1 是否合法
    if(f1 < 0)
    {
        return;
    }
    //将非阻塞设置进文件描述符的标志位中
    fcntl(fd , F_SETFL , f1 | O_NONBLOCK);
}

std::string Events2String(uint32_t events) // 为了debug
{
    std::string s;
    if (events == EPOLLIN)
    {
        s = "EPOLLIN";
    }
    if (events == EPOLLOUT)
    {
        s += "|EPOLLOUT";
    }
    if (events == EPOLLET)
    {
        s += "|EPOLLET";
    }
    return s;
}